package objetos;

public class Posicao {

	private int indice;
	private boolean ocupada;
	private Apple apple;
	private Object ocupador;
	
	public Posicao(int indice, boolean ocupada) {
		super();
		this.indice = indice;
		this.ocupada = ocupada;
		apple = null;
	}

	public int getIndice() {
		return indice;
	}

	public void setIndice(int indice) {
		this.indice = indice;
	}

	public synchronized boolean isOcupada() {
		return ocupada;
	}

	public synchronized void setOcupada(boolean ocupada) {
		this.ocupada = ocupada;
		notify();
	}
	
	public synchronized void ocupar(){
		if (isOcupada()) {
			try {
				wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		setOcupada(true);
		notifyAll();
	}
	
	public int getX(){
		return ((indice%20)*20);
	}
	
	public int getY(){
		int a = indice/20;
		return (a*20);
	}
	
	public void setApple() {
		apple = new Apple();
	}
	
	public boolean hasApple(){
		if(apple==null)
			return false;
		else
			return true;
	}
	
	public void eatApple(){
		apple = null;
	}
	
	public Apple getApple() {
		return apple;
	}

	public Object getOcupador() {
		return ocupador;
	}

	public void setOcupador(Object ocupador) {
		this.ocupador = ocupador;
	}
	
}
